#include <bits/stdc++.h>
using namespace std;
const int N=20005;
int p[N],d[N];
int n,m;
unordered_map<int,int>s;
int res;
int getq(int x)
{
	if(s.count(x)==0) s[x]=++n;
	return s[x];
}
int find(int x)
{
	if(x!=p[x])
	{
		int u=find(p[x]);
		d[x]+=d[p[x]];
		p[x]=u;
	}
	return p[x];
}
int main()
{
	cin>>n;
	n=0;
	cin>>m;
	for(int i=0;i<20005;i++) p[i]=i;
	
	for(int i=1;i<=m;i++)
	{
		int a,b;
		string c;
		cin>>a>>b>>c;
		int t=0;
		if(c=="odd") t=1;
		a=getq(a-1);
		b=getq(b);
	   int pa=find(a);
	   int pb=find(b); 
	   if(pa==pb)
	   {
	   	  if(d[a]^d[b]!=t)
	   	  {
			 res=i-1;
			 break;	
		}
	   }
	   else
	   {
	   	p[pa]=pb;
	   	d[pa]=d[a]^d[b]^t;
	   }
	   
	}
	printf("%d",res);
	
}
